#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <sys/wait.h>

int main() {
    int fd[2];
    pid_t pid;
    char buffer[50];
    const char* data = "20242804巴登泽绒"; // 学号+姓名替换

    // 创建管道
    if (pipe(fd) == -1) {
        perror("pipe");
        return 1;
    }

    // 创建子进程
    pid = fork();
    if (pid < 0) {
        perror("fork");
        return 1;
    }

    if (pid > 0) { // 父进程：写入数据
        close(fd[0]); // 关闭读端
        write(fd[1], data, strlen(data) + 1); // 写入字符串（含终止符）
        close(fd[1]); // 关闭写端
        wait(NULL); // 等待子进程结束
    } else { // 子进程：读取数据
        close(fd[1]); // 关闭写端
        read(fd[0], buffer, sizeof(buffer));
        printf("子进程读取数据：%s\n", buffer);
        close(fd[0]); // 关闭读端
    }

    return 0;
}
